CodeIgniter দিয়ে REST API তৈরি করা

Web Development - কোডইগনাইটার (Codeigniter) - CodeIgniter এর RESTful API তৈরি |

REST API (Representational State Transfer Application Programming Interface) হলো একটি প্রোগ্রামিং ইন্টারফেস যা ক্লায়েন্ট এবং সার্ভারের মধ্যে HTTP প্রোটোকল ব্যবহার করে ডেটা আদান-প্রদান করে। CodeIgniter ফ্রেমওয়ার্ক ব্যবহার করে সহজেই একটি REST API তৈরি করা সম্ভব। CodeIgniter একটি লাইটওয়েট ফ্রেমওয়ার্ক হওয়ার কারণে এটি RESTful API তৈরি করতে খুবই উপযুক্ত।

এই গাইডে আমরা দেখব কীভাবে CodeIgniter দিয়ে একটি REST API তৈরি করতে হয়।


REST API তৈরি করার জন্য প্রস্তুতি

১. CodeIgniter এর RESTful API Library ইনস্টল করা

CodeIgniter এর জন্য একটি জনপ্রিয় REST API Library হল CodeIgniter REST Server। এটি REST API তৈরি করার জন্য প্রয়োজনীয় সকল ফাংশনালিটি প্রদান করে। আপনাকে এই Library টি ইনস্টল করতে হবে।

১.১ CodeIgniter REST Server ইনস্টল করা
  1. প্রথমে, CodeIgniter REST Server ফাইলটি ডাউনলোড করুন অথবা GitHub থেকে Clone করুন:
  2. ডাউনলোড বা ক্লোন করা ফোল্ডারটি আপনার CodeIgniter প্রোজেক্টে application/third_party ডিরেক্টরিতে রাখুন।
  3. application/config/config.php ফাইলে $config['rest_api'] সেট করুন:

    $config['rest_api'] = TRUE;
    
  4. এরপর application/libraries/Rest.php ফাইলটি লোড করুন:

    $this->load->library('rest');
    

CodeIgniter এ REST API কনফিগারেশন

২. কনফিগারেশন সেটআপ

application/config/rest.php ফাইলে REST API এর কনফিগারেশন সেট করুন। এখানে কিছু গুরুত্বপূর্ণ কনফিগারেশন প্যারামিটার:

$config['rest_enabled'] = TRUE;            // REST API সক্রিয় করা
$config['rest_auth'] = 'basic';            // Authentication টাইপ (basic, none, etc.)
$config['rest_format'] = 'json';           // রেসপন্স ফরম্যাট (json/xml)
$config['rest_valid_keys'] = array('key1', 'key2'); // অ্যাপ্লিকেশন কী (optional)

REST API Controller তৈরি

৩. Controller তৈরি করা

REST API তৈরি করতে একটি কাস্টম Controller তৈরি করুন, যেখানে API রাউটগুলি থাকবে। উদাহরণস্বরূপ, একটি UserController তৈরি করা হল, যা একটি GET এবং POST রিকোয়েস্ট হ্যান্ডল করবে।

৩.১ Controller কোড
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class UserController extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('UserModel');  // UserModel লোড করা
        $this->load->library('rest');     // Rest Library লোড করা
    }

    // GET রিকোয়েস্ট হ্যান্ডলিং
    public function get_user($id = NULL) {
        $data = $this->UserModel->get_user($id);
        
        if ($data) {
            $this->rest->response($data, 200); // Success response
        } else {
            $this->rest->response(array('error' => 'No data found'), 404); // Not found
        }
    }

    // POST রিকোয়েস্ট হ্যান্ডলিং
    public function create_user() {
        $user_data = $this->input->post();  // POST ডেটা গ্রহণ

        if ($this->UserModel->insert_user($user_data)) {
            $this->rest->response(array('message' => 'User created successfully'), 201); // Created response
        } else {
            $this->rest->response(array('error' => 'Failed to create user'), 400); // Bad request
        }
    }
}
  • এখানে get_user($id) মেথডটি একটি GET রিকোয়েস্ট হ্যান্ডল করে এবং নির্দিষ্ট user ID এর তথ্য রিটার্ন করে।
  • create_user() মেথডটি একটি POST রিকোয়েস্ট হ্যান্ডল করে এবং নতুন ব্যবহারকারী তৈরি করে।

Model তৈরি

৪. Model তৈরি করা

Model তৈরি করার মাধ্যমে ডাটাবেস থেকে ডেটা নিয়ে API এর মাধ্যমে রেসপন্স পাঠানো হয়। এখানে UserModel তৈরি করা হল।

৪.১ UserModel কোড
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class UserModel extends CI_Model {

    public function get_user($id = NULL) {
        if ($id === NULL) {
            $query = $this->db->get('users');
            return $query->result_array();
        }
        $query = $this->db->get_where('users', array('id' => $id));
        return $query->row_array();
    }

    public function insert_user($data) {
        return $this->db->insert('users', $data);
    }
}
  • get_user($id) মেথডটি ডাটাবেস থেকে ব্যবহারকারীর তথ্য খুঁজে বের করে।
  • insert_user($data) মেথডটি ডাটাবেসে নতুন ব্যবহারকারী সংরক্ষণ করে।

Routing

৫. Routing সেটআপ

application/config/routes.php ফাইলে API রাউটগুলি সঠিকভাবে সেট করুন। উদাহরণ:

$route['api/users/(:num)'] = 'UserController/get_user/$1'; // GET user by ID
$route['api/users'] = 'UserController/create_user';         // POST create user
  • /api/users/(:num): একটি ব্যবহারকারীর তথ্য GET রিকোয়েস্ট দ্বারা পাওয়া যাবে।
  • /api/users: নতুন ব্যবহারকারী তৈরি করতে POST রিকোয়েস্ট পাঠানো হবে।

JSON Response

CodeIgniter REST API JSON রেসপন্স প্রদান করতে নিচের কোড ব্যবহার করা হয়:

$this->rest->response($data, 200); // JSON রেসপন্স এবং HTTP স্ট্যাটাস কোড (200 = OK)

API টেস্টিং

৬. API টেস্ট করার জন্য

API টেস্ট করার জন্য আপনি Postman বা cURL ব্যবহার করতে পারেন।

GET Request (User by ID):

GET http://localhost/api/users/1

POST Request (Create User):

POST http://localhost/api/users

Request Body:

{
  "name": "John Doe",
  "email": "john.doe@example.com",
  "password": "123456"
}

CodeIgniter দিয়ে REST API তৈরি করা খুবই সহজ। RESTful API ব্যবহারকারীদের JSON ফরম্যাটে ডেটা প্রদান করে এবং সেগুলিকে সহজভাবে ম্যানিপুলেট করা যায়। এই গাইডে আমরা দেখেছি কীভাবে GET, POST রিকোয়েস্ট হ্যান্ডল করা হয় এবং কীভাবে ডাটাবেস থেকে ডেটা রিটার্ন করা যায়।

Content added By
Promotion